SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE VIEW dbo.vw_NominaDeAltaYBajaDeServicios
--<DESCRIPCION> Vista empleada para visualizar el reporte de Nomina de Altas y Bajas de Servicios.
--<ACTUALIZACIONES> 18-05-2006 por OTERO, Javier (Se agrega relacion con vista vw_ColaDeMovimientosDocentes para poder conocer las continuidades)
--<ACTUALIZACIONES> 19-05-2006 por OTERO, Javier (Se REHACE TODO EL BLOQUE DEL FROM nuevamente.)
--<ACTUALIZACIONES> 30-05-2006 por OTERO, Javier (Actualizacion por Altas)
-- <ACTUALIZACIONES> 11 - 12 - 2006 por OTERO, Javier (Filtro de servicios según las organizaciones del usuario en tb_RelUsuarioOrganizacion)
-- <ACTUALIZACIONES> 19 - 12 - 2006 (Se comento el cambio anterior, ya que sobre la pantalla con el reporte  este cambio no funciona, el reporte cuando utiliza esta vista lo hace con un usuario que no es el que esta conectado (NT_WINDOWS\AUTHORITY))
-- <ACTUALIZACIONES> 25 - 03 - 2008  por FIORUCCI agregue para que NO incluya la causa de alta 6 a pedido de Orlando
-- <ACTUALIZACIONES> 06 - 10 - 2008  por SANES, Jorge y OTERO, Marcelo,  se agrego where para que tome servicios que tienen una reubicacion

AS
SELECT  DISTINCT ag.Documento, ag.Nombres, 
		    tb_Afiliaciones.NumeroAfiliado, upper(rtrim(ltrim(tb_Organizaciones.Nombre))) AS Nombre, 
		    tb_Asignaturas.Descripcion AS Asignatura, 
		    tb_SituacionRevista.Descripcion AS SituacionRevista, 
		    tb_ServiciosAgentes.Horas, tb_ServiciosAgentes.FechaAlta, 
		    dateadd([d], 1, tb_ServiciosAgentes.FechaBaja) AS FechaBaja, 
		    tb_Organizaciones.CUISE, tb_Localidades.localidad, 
		    tb_SubOrganizaciones.Categoria, ISNULL(ag1.Nombres, 
		    'No disponible') AS UltimoDocente, mod.Mnemo, zon.zona, 
		    tb_funciones.idfuncion AS IdCargo, 
		    tb_Funciones.Descripcion AS cargo, 
		    CASE tb_ServiciosAgentes.EstaEnProcesoDeTitularizacion
			WHEN 'S' THEN
				tb_plazas.CUPOF + ' (' + cast(tb_serviciosagentes.nrodeorden9 AS
				     varchar(50)) + ') - (A TITULARIZAR)'
			ELSE 
				tb_plazas.CUPOF + ' (' + cast(tb_serviciosagentes.nrodeorden9 AS
				     varchar(50)) + ')'
			END 
		
			AS CUPOF,  ag.Nombres gggg,

		    'Dirección General de Personal Docente' AS Nivel, 
		    tb_ServiciosAgentes.NormaAlta, 
		    tb_ServiciosAgentes.NormaBaja, N1.TipoNorma AS TipoAlta, 
		    N2.Tiponorma AS TipoBaja, N1.Descripcion AS NormaInicio, 
		    N2.Descripcion AS NormaFin, CM.Movimiento, CM.Fecha1, NormaContinuidad, CASE WHEN CM.idCola IS NULL THEN 0 ELSE 1 END Cola, NC.Descripcion AS DNormaContinuidad

	FROM tb_Agentes ag 
		LEFT OUTER JOIN tb_Afiliaciones ON ag.idAgente = tb_Afiliaciones.idAgente 
		INNER JOIN tb_ServiciosAgentes ON ag.idAgente = tb_ServiciosAgentes.Agente 
		INNER JOIN tb_SubServiciosAgentes ON tb_ServiciosAgentes.idServicioAgente = tb_SubServiciosAgentes.ServicioAgente
		INNER JOIN tb_Plazas ON tb_Plazas.idPlaza = tb_SubServiciosAgentes.Plaza 
		INNER JOIN tb_SituacionRevista ON tb_ServiciosAgentes.SituacionRevista = tb_SituacionRevista.idSituacionRevista
		INNER JOIN tb_Funciones ON tb_Plazas.Funcion = tb_Funciones.idFuncion 
		LEFT OUTER JOIN tb_Asignaturas ON tb_ServiciosAgentes.Asignatura = tb_Asignaturas.idAsignatura 
		INNER JOIN tb_Organizaciones ON tb_Plazas.Organizacion = tb_Organizaciones.IdOrganizaciones
		LEFT OUTER JOIN tb_Localidades ON tb_Localidades.idLocalidad = tb_Organizaciones.Localidad 
--		INNER JOIN tb_SubOrganizaciones ON tb_Plazas.SubOrganizacion= tb_SubOrganizaciones.idSubOrganizacion
		INNER JOIN tb_SubOrganizaciones ON tb_Organizaciones.idOrganizaciones = tb_SubOrganizaciones.Org
		INNER JOIN tb_ModalidadesEnsenanza mod ON mod.idModalidad = tb_SubOrganizaciones.Modalidad 
		INNER JOIN tb_zonas zon ON zon.idZona = tb_SubOrganizaciones.Zona 
		LEFT OUTER JOIN tb_Agentes ag1 ON ag1.idAgente = tb_Plazas.DuenoActual 
		LEFT OUTER JOIN tb_Normas N1 ON N1.IdNorma = tb_ServiciosAgentes.NormaAlta 
		LEFT OUTER JOIN tb_Normas N2 ON N2.IdNOrma = tb_ServiciosAgentes.NormaBaja
		LEFT JOIN vw_ColaDeMovimientosDocentes CM ON CM.Agente = AG.IdAgente AND CM.IdPlaza = tb_Plazas.IdPlaza AND tb_ServiciosAgentes.FechaBaja IS NULL  AND tb_ServiciosAgentes.NormaAlta IS NOT NULL AND CM.Fecha1 > tb_ServiciosAgentes.FechaAlta
		LEFT JOIN tb_Normas NC ON NC.IdNorma = NormaContinuidad
		--INNER JOIN tb_Usuarios U ON LTRIM(RTRIM(UPPER(U.NTUser))) = LTRIM(RTRIM(UPPER(SYSTEM_USER )))
		--INNER JOIN tb_RelUsuarioOrganizacion UO ON U.IdUsuario = UO.idUsuario AND tb_Organizaciones.IdOrganizaciones = UO.IdOrganizacion

WHERE (tb_SubOrganizaciones.EsPropia = 'S') AND 

    (
      (tb_SubServiciosAgentes.Fechaalta = tb_ServiciosAgentes.FechaAlta and tb_ServiciosAgentes.fechabaja is null)
       OR
      (tb_ServiciosAgentes.FechaBaja IS NOT NULL and tb_serviciosagentes.fechabaja = tb_subserviciosagentes.fechabaja)
       -- Agregado 06/10/2008
       OR
      (tb_ServiciosAgentes.FechaBaja IS NULL AND tb_SubserviciosAgentes.FechaBaja IS null) 
    ) 
    AND     
    (tb_serviciosagentes.CausaAlta NOT IN (4, 6,8, 9, 11) OR  -- modificado 25 - 03 - 2008
    tb_serviciosagentes.CausaAlta IS NULL) AND 
    (tb_serviciosagentes.CausaBaja NOT IN (7, 8, 10) OR
    tb_serviciosagentes.CausaBaja IS NULL) AND
    tb_Afiliaciones.Organismo = 1 AND ((tb_Organizaciones.EsPrivada = 'S' AND IdSubOrganizacion = (SELECT MIN(IdSubOrganizacion) FROM tb_SubOrganizaciones WHERE Org = IdOrganizaciones)) OR  (tb_Organizaciones.EsPrivada IS NULL or tb_Organizaciones.EsPrivada='N' ))
    AND tb_Afiliaciones.NumeroAfiliado <> AG.Documento






















GO
GRANT SELECT ON  [dbo].[vw_NominaDeAltaYBajaDeServicios] TO [SoloVer]
GO
